The present disclosure relates to aspects of electronic storage, and relates in particular to improvements to the management of cache operations on one or more solid-state, hard disk drive, or other storage devices.
Due to the nature of computing architecture, it can be beneficial to use a high-speed cache to temporarily store data that has been commonly or frequently accessed, was recently accessed, or is probabilistically likely to be accessed in the future. A cache can be part of a storage hierarchy, and can be a software or hardware component. For example, data to be stored, or “cached,” can use high-speed flash devices like solid-state devices (SSDs), which may utilize flash memory, static random access memory (SRAM), and other types of storage devices, as applicable, or a portion of a hard-disk drive that has faster access speed that the rest of that drive. Hierarchical caching structures are beneficial to the operation of computers at least in part due to the concept of “locality of reference,” which asserts that the locality of a reference (e.g., one or more data blocks), either spatial or temporal, is an important factor that can limit or otherwise determine a computer's maximum or expected performance. In some embodiments, it is worth noting that a cache may store a duplicate of a data block that is already stored on a primary, back-end storage medium, also termed a “backing store” or “source.” By design, caches tend to be higher-speed than other associated storage devices (such as the backing store), but caches may have a trade-off of a more limited storage capacity, in some embodiments. The terms cache and cache devices are used interchangeably, herein.